import Vue from "vue";
import Vuex from "vuex";

// 注册Vuex插件
Vue.use(Vuex);

export default new Vuex.Store({
    // ajax请求、逻辑判断等工作在这里完成
    actions: {
        addOdd(context, value) {
            if (context.state.n % 2) {
                context.commit("INCREASE", value);
            }
        },
        addWait(context, value) {
            setTimeout(() => {
                context.commit("INCREASE", value);
            }, 100);
        },
    },
    // 这里只关注对state中的数据的修改
    mutations: {
        INCREASE(state, value) {
            state.n += value;
        },
        REDUCE(state, value) {
            state.n -= value;
        },
    },
    // 存储数据的地方
    state: {
        n: 0,
    },
    getters: {
        doubleN(state) {
            return state.n * 2;
        },
    },
});
